package com.luom.usercenter.service;


import com.luom.usercenter.model.User;
import com.luom.usercenter.model.request.UserUpdateRequest;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

public interface UserService {

    /**
     *
     * @param userAccount 用户账户
     * @param password 用户密码
     * @param checkPassword 校验密码
     * @return 新用户id
     */
    long userRegister(String userAccount,String password,String checkPassword);

    /**
     * 登录
     * @param userAccount 用户账户
     * @param password 用户密码
     * @return 返回脱敏后信息
     */
    User userLogin(String userAccount, String password, HttpServletRequest request);

    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户集合
     */
    List<User> searchUsers(String username);

    /**
     * 根据id删除用户
     * @param id 用户id
     * @return 是否成功删除
     */
    boolean deleteUser(Long id);

    /**
     * 查询所有
     * @param username
     * @return
     */
    List<User> searchAllUsers(String username);

    User getSafetUser(User user);

    /**
     * 根据id查询用户
     * @param id 用户id
     * @return 用户
     */
    User getById(Long id);

    /**
     * 用户注销
     * @param request
     * @return
     */
    Integer userLogout(HttpServletRequest request);

    /**
     * 更新用户
     * @param userUpdateRequest 更新用户实体
     * @return
     */
    void updateUser(UserUpdateRequest userUpdateRequest);
}
